package startupcompanymanager2012.minigames.tictactoe;

// TTTBoard.java
// Klasse, die das Spielfeld-GUI als 3x3 Buttons anlegt
// und auf Button-Clicks reagiert, um Spielzuege auszufuehren

import java.awt.*;
import java.awt.event.*;

class TTTBoard extends Panel implements ActionListener {
	static char SPIELER_X  = 'X';
	static char spielerO = 'O';
	Button[] button;
	TTT ttt;
	Font myFont;

	TTTBoard(TTT ttt) {
		// Konstruktor von TTTBoard
		// Super-Konstruktor mit LayoutManager als Argument aufrufen
		super(new GridLayout(3,3));
		
		// Initialisierungen von Instanzvariablen
		this.ttt = ttt;
		myFont = new Font("Helvetica",Font.BOLD,20);
		
		// Buttons fuer das Spielfeld erzeugen
		button = new Button[9];
		
		// Buttons initialisieren
		int i;
		for (i=0; i<9; i++) {
				// Button erzeugen und Schriftart festlegen
				button[i] = new Button("");
				button[i].setFont(myFont);
				
				// Ereignisbehandlung installieren
				button[i].setActionCommand(i + "");
				button[i].addActionListener(this);
				
				// Button zu Panel hinzufuegen
				add(button[i]);	
		}	
	}
	
	public void setzeFeld(int i, int spieler) {
		// Feld-Button i als besetzt durch Spieler 'spieler' 
		// markieren mit "X", "O" oder ""
		if (spieler == ttt.SPIELER_X ) {
			button[i].setLabel("X");
		} else if (spieler == ttt.SPIELER_O) {
			button[i].setLabel("O");
		} else if (spieler == ttt.LEER) {
			button[i].setLabel("");
		}
	}
			
	public void actionPerformed(ActionEvent e) {
		// Ereignisbehandlung fuer Klicks auf Buttons
		// Fuehre einen Zug aus mit ttt.macheZug(i), wenn Feld-Button i geklickt wurde	
		if (e.getSource() instanceof Button) {
			ttt.macheZug(Integer.parseInt(e.getActionCommand()));
		}
	}
}
